-
Notifications
You must be signed in to change notification settings - Fork 5
feat(api): validate required app config items #2472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(api): validate required app config items #2472
Conversation
This PR has been released (on staging) and is available for download with a embedded-cluster-smoke-test-staging-app license ID. Online Installer:
Airgap Installer (may take a few minutes before the airgap bundle is built):
Happy debugging! |
@@ -137,7 +137,7 @@ wait_for_pods_running() { | |||
current_time=$(date +%s) | |||
elapsed_time=$((current_time - start_time)) | |||
if [ "$elapsed_time" -ge "$timeout" ]; then | |||
kubectl get pods -A -o yaml || true | |||
kubectl get pods -A || true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was too noisy
// TODO: should an item really not be required if it's hidden? | ||
if item.Hidden || item.When == "false" { | ||
return false | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is how KOTS works today
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
configItems := make(map[string]kotsv1beta1.ConfigItem) | ||
configChildItems := make(map[string]kotsv1beta1.ConfigChildItem) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ConfigItem vs. ConfigChildItem is sort of confusing. I initially thought that ConfigItem
was actually a ConfigGroup
. Is ConfigChildItem
for select_one
/dropdown
type of config types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure. @sgalsaleh what is ConfigChildItem
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's for certain config item types like radio
and dropdown
that have multiple options to select from.
ebe2d70
to
f4a302c
Compare
if item.Hidden { | ||
return false | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I created a follow up story for this https://app.shortcut.com/replicated/story/126644/correct-app-config-hidden-required-behavior
@@ -415,3 +481,241 @@ func TestKubernetesGetAppConfigValues(t *testing.T) { | |||
assert.Equal(t, http.StatusUnauthorized, apiError.StatusCode) | |||
}) | |||
} | |||
|
|||
// TestInstallController_SetAppConfigValuesWithAPIClient tests the SetAppConfigValues endpoint using the API client | |||
func TestInstallController_SetAppConfigValuesWithAPIClient(t *testing.T) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can be done in a separate pr
func TestInstallController_SetAppConfigValuesWithAPIClient(t *testing.T) { | |
func TestInstallController_PatchAppConfigValuesWithAPIClient(t *testing.T) { |
@@ -414,3 +483,241 @@ func TestLinuxGetAppConfigValues(t *testing.T) { | |||
assert.Equal(t, http.StatusUnauthorized, apiError.StatusCode) | |||
}) | |||
} | |||
|
|||
// TestInstallController_SetAppConfigValuesWithAPIClient tests the SetAppConfigValues endpoint using the API client | |||
func TestInstallController_SetAppConfigValuesWithAPIClient(t *testing.T) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
What this PR does / why we need it:
API support and validation for required items
Which issue(s) this PR fixes:
Does this PR require a test?
Does this PR require a release note?
Does this PR require documentation?